// 假设这是要渲染到swiper-item的数据
let list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// 这是当前swiper-item在list中的索引

let index = 0

// 这是当前swiper-item在swiper中的索引

let currentIndex = 0

Page({
  data: {
    // 要渲染到swiper-item的数组

    displayList: [],
  },

  onLoad() {
    this.upDateDisplayList()
  },

  // 更新当前displayList

  upDateDisplayList() {
    let displayList = []
    // 当前显示的
    displayList[currentIndex] = list[index]
    // 如果后一页是下一组的最后一个那就这是下一组的最后一个，不是就是后一页  
    displayList[currentIndex - 1 == -1 ? 2 : currentIndex - 1] = list[index - 1 == -1 ? list.length - 1 : index - 1]
    // 如果前一页是下一组的第一个那就这是下一组的第一个，不是就是前一页
    displayList[currentIndex + 1 == 3 ? 0 : currentIndex + 1] = list[index + 1 == list.length ? 0 : index + 1]

    this.setData({
      displayList,
    })
    console.log('最后',currentIndex);
  },

  onSwiperChange(e) {
    console.log('--------------------------------------------------');
    // 先判断是向前滑动还是向后滑动
    // current 为滑动后swiper-item的索引
    let current = e.detail.current
    console.log('最新的swiper-item下标',current);
    // currentIndex是滑动前swiper-item的索引
    // 为什么现在currentIndex又是滑动前的,因为是swiper的回调函数，这个是滑动了才触发的，
    // 也就是滑动完了才触发的 currentIndex现在在进入if之前是上一个滑块的下标，
    // 进去了才重新赋值
    console.log('if之前',currentIndex);
    // 如果两者的差为2或者-1则是向前滑动

    if (currentIndex - current == 2 || currentIndex - current == -1) {
      // 前翻index就是+1
      index = index + 1 == list.length ? 0 : index + 1
      // 先判断当前页是不是下一组的第一页
      currentIndex = currentIndex + 1 == 3 ? 0 : currentIndex + 1
      console.log('向前if之后',currentIndex);
      this.upDateDisplayList()
    }

    // 如果两者的差为-2或者1则是向后滑动
    else if (currentIndex - current == -2 || currentIndex - current == 1) {
      index = index - 1 == -1 ? list.length - 1 : index - 1
      // 先判断当后页是不是下一组的最后一页
      currentIndex = currentIndex - 1 == -1 ? 2 : currentIndex - 1
      console.log('向后if之后',currentIndex);
      this.upDateDisplayList()
    }
  },
})
